Applications that access network-based data often rely on data replication to reduce access latency, reduce required network communications, and allow for continued operation in the event of planned or unexpected network disconnection. One simple form of replication is caching, which is suitable for read-only applications. More sophisticated mechanisms are required for applications that create, retrieve, update, and delete (often referred to as “CRUD”) network-based data. Such applications may require a way to reconcile a local replica with a remote copy if they have diverged due to update operations. The replication or synchronization process can be non-trivial and require that conflicting updates be detected and resolved.
There are certain known techniques for replication that are tailored to specific data formats. However, applications are increasingly tasked with operating in conjunction with multiple data sources, which may have heterogeneous formats. One approach to dealing with heterogeneous data sources is the so-called “federated data base” approach wherein the collection of heterogeneous data sources is aggregated to appear as a single logical data store. Such work, however, is primarily focused on preserving the atomicity, consistency, isolation, and durability (often referred to as “ACID”) properties of data bases rather than the managing of replicas. Distributed file systems have approached the problem by distributing replicas of the data, per se, in the form of files. However, higher level representations of data may be necessary in order for the efficient storage, organization, and retrieval of such data.
Accordingly, there is a need for an alternative mechanism to support the replication of data when dealing with heterogeneous data stores.